﻿using BusinessLogicLayer;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PresentationLayer
{
    public partial class CapNhatThongTinTheLoaiForm : Form
    {
        public CapNhatTL PhuongThucCapNhatTL { get; set; }
        public TheLoai tl;
        public string MaTL { get; set; }
        public CapNhatThongTinTheLoaiForm()
        {
            InitializeComponent();
        }

        private void btnThemTheLoai_Click(object sender, EventArgs e)
        {
            String ma = txtMaTheLoai.Text;
            String ten = txtTenTheLoai.Text;
            String mota = txtMoTa.Text;
            TheLoai theloai = new TheLoai(ma, ten, mota);
            TheLoaiManager tlmn = new TheLoaiManager();
            ValidateResult vr1 = tlmn.KiemTraHopLe(theloai);
            if (vr1.Valid)
            {
                ValidateResult vr = tlmn.KiemTraTrungMa(ma);
                if (vr.Valid)
                {
                    if (MessageBox.Show(String.Format("Bạn muốn thêm thể loại có mã thể loại: {0}?", ma), "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {                        
                        ActionResult ar = new ActionResult();
                        ar = tlmn.ThemTheLoai(ref theloai);
                        if (ar.Success)
                        {
                            if (PhuongThucCapNhatTL != null)
                                PhuongThucCapNhatTL(LoaiHanhDong.Them, theloai);
                            MessageBox.Show("Thêm thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else
                            MessageBox.Show("Thêm thất bại!\n\nChi tiết: " + ar.Exceptions[ar.Exceptions.Count - 1].Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    }
                }
                else
                    MessageBox.Show(vr.ToString());
            }
            else
                MessageBox.Show(vr1.ToString());
        }

        private void btnCapNhatTheLoai_Click(object sender, EventArgs e)
        {

            string matheloai = txtMaTheLoai.Text;
            string tentheloai = txtTenTheLoai.Text;
            string mota = txtMoTa.Text;
            if (MessageBox.Show(String.Format("Bạn muốn cập nhật thông tin thể loại có mã thể loại {0}?", matheloai), "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                TheLoai tl = new TheLoai(matheloai, tentheloai, mota);
                ActionResult ar = new TheLoaiManager().SuaTheLoai(tl);
                if (ar.Success)
                {
                    if (PhuongThucCapNhatTL != null)
                        PhuongThucCapNhatTL(LoaiHanhDong.CapNhat, tl);
                    MessageBox.Show("Cập nhật thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                    MessageBox.Show("Cập nhật thất bại!\n\nChi tiết: " + ar.Exceptions[ar.Exceptions.Count - 1].Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void CapNhatThongTinTheLoaiForm_Load(object sender, EventArgs e)
        {

            if (MaTL != "")
            {
                txtMaTheLoai.ReadOnly = true;
                btnThemTheLoai.Visible = false;
                var rs = new TheLoaiManager().TimKiemTheLoaiTheoMa(MaTL);
                tl = rs.ObjectList[0];
                txtMaTheLoai.Text = tl.MaTheLoai;
                txtTenTheLoai.Text = tl.TenTheLoai;
                txtMoTa.Text = tl.MoTa;
            }
            else
            {
                btnCapNhatTheLoai.Visible = false;
            }

        }

    }
}
